package recursion;

/**
 * @author zxl
 * @version 1.0
 * @date 2021/10/24 16:47
 * 递归
 * 求a到 b相加的和
 */
public class Recursion {
    public static void main(String[] args) {
        int accumulate = accumulate(1, 10);
        int recursion = recursion(1, 10);
        System.out.println(accumulate);
        System.out.println(recursion);
    }

    //递归 自己调用自己

    /**
     * 例如
     * 1+2+3+4
     * 第一步 1 + recursion(2,4)
     * 第二步 1 + 2 + recursion(3,4)
     * 第三步 1 + 2 + 3 + recursion(4,4)
     * 第四步 1 + 2 + 3 + 4
     */
    public static int recursion(int start,int end){
        if (start==end){
            return end;
        }
        return start + recursion(start+1,end);
    }

    //普通方法
    public static int accumulate(int start, int end) {
        int num = 0;
        for (int i = start; i <= end; i++) {
            num += i;
        }
        return num;
    }

}
